/**
 * 
 */
package tur.br.moradadosol.view.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import tur.br.moradadosol.control.MensagemControl;
import tur.br.moradadosol.control.PesquisaControl;
import tur.br.moradadosol.control.UserAutentication;
import tur.br.moradadosol.model.Hospede;
import tur.br.moradadosol.util.Mail;
import tur.br.moradadosol.view.form.GeraPesquisaForm;

/**
 * @author alex
 *
 */
public class GeraPesquisaAction extends Action {
	
	public ActionForward execute(
			ActionMapping mapping, 
			ActionForm form,
			HttpServletRequest request, 
			HttpServletResponse response)
			throws Exception {
		
		HttpSession session = request.getSession();

		if(!UserAutentication.isUserAutenticated(session)) {
			return mapping.findForward("login");
		}
		
		PesquisaControl pc = new PesquisaControl();
		MensagemControl mc = new MensagemControl();
		
		GeraPesquisaForm pForm = (GeraPesquisaForm) form;
		
		Hospede hospede = (Hospede)session.getAttribute("hospede");
		if(hospede != null) {
			pForm.setMailTo(hospede.getEmail());
			pForm.setNome(hospede.getNome());
			session.removeAttribute("hospede");
		}
		
		if(pForm.getEnviar().length() > 0) {
			String chave = pc.gerarNovaPesquisa();
			
			String to = pForm.getMailTo();
			String nome = pForm.getNome();
			
			String texto = mc.getMensagemEmail(nome, chave).getTexto();
	
			Mail mail = new Mail(to, "Pesquisa de Satisfação", texto);
			mail.send();
			
			//TODO Mensagem de sucesso?
			session.setAttribute("msgEnvio", "Pesquisa enviada!");
		
		}
		
		return mapping.getInputForward();
	}

}
